﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication1
{
    public partial class handicap : Form
    {

        #region Variables
       
        SqlConnection con = new SqlConnection();
        public SqlDataAdapter adapter = null;

        public DataTable datatbl = new DataTable();
        private SqlCommandBuilder sqlCommandBuilder = null;
        private BindingSource bindingSource = null;
        public string selectquery = null;

        private int iRowIndex = 0;

        #endregion


        public handicap()
        {
            InitializeComponent();
        }

        private void btnselect_Click(object sender, EventArgs e)
        {
            // Select string
            string selectquery = string.Format("SELECT * FROM handicap");

            adapter = new SqlDataAdapter(selectquery, con);
            SqlCommandBuilder sqlbuilder = new SqlCommandBuilder(adapter);

            datatbl.Clear();
            adapter.Fill(datatbl);


            bindingSource = new BindingSource();
            bindingSource.DataSource = datatbl;

            // Render der Daten am schirm

            DG_ResultsGrid.DataSource = datatbl;
    

        }

        private void btninsertinto_Click(object sender, EventArgs e)
        {
            // Querystring
            string query = "INSERT INTO handicap(hLevel, hDatum) VALUES "
               + " ('" + txtLevel.Text + "','"  + txtDatum.Text + "' )";  
                

            SqlCommand cmd = new SqlCommand(query, con);
            //cmd.ExecuteNonQuery();


            int intCheckQuery = cmd.ExecuteNonQuery();

            // Prueft ob Query erfolgreich abgesetzt werden konnte.
            if (intCheckQuery > 0)
            {
                MessageBox.Show("Datensatz erfolgreich hinzugefügt");
            }
            else
            {
                MessageBox.Show("Datensatz konnte nicht hinzugefügt werden");
            }

            // Verbindung zur Datenbank schließen
            con.Close();
        }

        private void btnConnectDb_Click(object sender, EventArgs e)
        {
            // Wenn keine Verbindung geoeffnet ist wird sie hergestellt.
            if (con.State == ConnectionState.Closed)
            {
                //Connection String
                con.ConnectionString = ("Data Source=localhost\\SQLEXPRESS; Initial Catalog = golf; Integrated Security = false; User ID = sa; Password = 12345; Connect Timeout = 3");

                con.Open();
            }

            // Wenn die Verbindung geoeffnet oder geschlossen ist, Gib Verbindungsstatus aus. 
            if (con.State == ConnectionState.Open)
            {
                MessageBox.Show("Datenbankverbindung wurde hergestellt");
            }
            else
            {
                MessageBox.Show("Datenbankverbindung wurde geschlossen");
            }

        }

        private void btnupdate_Click(object sender, EventArgs e)
        {

            try
            {

                
                adapter.Update(datatbl);


            }
            catch (Exception exceptionObj)
            {
                MessageBox.Show(exceptionObj.Message.ToString());
            }


        }

        private void btndelete_Click(object sender, EventArgs e)
        {

            try
            {
                //ask user if wanting to delete
                DialogResult dr = MessageBox.Show("Sind Sie sicher dass Sie den Datensatz löschen wollen? ", "Bitte Löschen bestätigen", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.Yes) //if 
                {
                    //datatbl.Clear();

                    int i = this.iRowIndex;// index ermitteln des ausgewählten datensatzes
                    datatbl.Rows[i].Delete(); //löschen
                    this.adapter.Update(datatbl); //Tabelle aktualisieren in DB

                }
            }
            catch (Exception exceptionObj)
            {
                MessageBox.Show(exceptionObj.Message.ToString());
            }


        }

        private void txtDatum_TextChanged(object sender, EventArgs e)
        {

        }

    

 

       
    }
}
